package com.cmc.cloud.cmclink.doc.service.special;

import java.util.*;
import javax.validation.*;

import com.cmc.cloud.cmclink.doc.vo.specialcargomaximumvo.SpecialCargoMaximumCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargomaximumvo.SpecialCargoMaximumPageReqVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargomaximumvo.SpecialCargoMaximumUpdateReqVO;
import com.cmes.framework.common.pojo.PageResult;
import com.cmc.cloud.cmclink.doc.entity.SpecialCargoMaximumDO;

/**
 * 单船特种货最大装载量限制维护 Service 接口
 *
 * @author 集运管理员
 */
public interface SpecialCargoMaximumService {

    /**
     * 创建单船特种货最大装载量限制维护
     *
     * @param createReqVO 创建信息
     */
    void createSpecialCargoMaximum(@Valid SpecialCargoMaximumCreateReqVO createReqVO);

    /**
     * 更新单船特种货最大装载量限制维护
     *
     * @param updateReqVO 更新信息
     */
    void updateSpecialCargoMaximum(@Valid SpecialCargoMaximumUpdateReqVO updateReqVO);

    /**
     * 删除单船特种货最大装载量限制维护
     *
     * @param id 编号
     */
    void deleteSpecialCargoMaximum(Long id);

    /**
     * 获得单船特种货最大装载量限制维护
     *
     * @param id 编号
     * @return 单船特种货最大装载量限制维护
     */
    SpecialCargoMaximumDO getSpecialCargoMaximum(Long id);

    /**
     * 获得单船特种货最大装载量限制维护列表
     *
     * @param ids 编号
     * @return 单船特种货最大装载量限制维护列表
     */
    List<SpecialCargoMaximumDO> getSpecialCargoMaximumList(Collection<Long> ids);

    /**
     * 获得单船特种货最大装载量限制维护分页
     *
     * @param pageReqVO 分页查询
     * @return 单船特种货最大装载量限制维护分页
     */
    PageResult<SpecialCargoMaximumDO> getSpecialCargoMaximumPage(SpecialCargoMaximumPageReqVO pageReqVO);

}
